package com.muc.logic;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


import com.muc.logic.IActivity;

import android.R.string;
import android.app.Activity;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.text.StaticLayout;
import android.util.Log;

public class MainService extends Service implements Runnable
{
	public static ArrayList<Activity>	allActivity	= new ArrayList<Activity>();	// 窗口列表
	public static ArrayList<Task>		allTask		= new ArrayList<Task>();		// 任务列表
	public static int					lastActivityId;							// 保存前端Activity编号
	public boolean						isrun		= true;						// 更新线程运行参数
	public IActivity					ia			= null;

	public static Activity getActivityByName(String name)
	{
		for (Activity ac : allActivity)
		{
			if (ac.getClass().getName().indexOf(name) >= 0)
			{
				return ac;
			}
		}
		return null;
	}

	private  Handler	hand	= new Handler()
							{
								public void handleMessage(Message msg)
								{
									super.handleMessage(msg);
									ia = (IActivity) MainService.getActivityByName((String) ((Task)(msg.obj)).getByString("class"));
									Log.d("mess", "ia" + ia);
									ia.refresh((Task)msg.obj);
									// switch (msg.what)
									// {
									// case Task.TASK_DO_FIRST_RUN:
									// ia=(IActivity)
									// MainService.getActivityByName("MainActivity");
									// ia.refresh(Task.TASK_DO_FIRST_RUN,msg.obj);
									// break;
									// case Task.TASK_DO_LISTPUSH_RUN:
									// ia=(IActivity)
									// MainService.getActivityByName("MainActivity");
									// ia.refresh(Task.TASK_DO_LISTPUSH_RUN,msg.obj);
									// break;
									// case Task.TASK_GET_PUSH_LIST:// 获取了信息
									// ia = (IActivity)
									// MainService.getActivityByName("ListPushActivity");
									// // 刷新类型 信息
									// ia.refresh(Task.TASK_GET_PUSH_LIST,
									// msg.obj);
									// Log.d("task",
									// "ia.refresh ok........................");
									// break;
									// case Task.TASK_GET_PUSH_DETAIL:// 获取详细信息
									// ia = (IActivity)
									// MainService.getActivityByName("ListPushDetailActivity");
									// ia.refresh(Task.TASK_GET_PUSH_DETAIL,msg.obj);
									// break;
									// }
								}
							};

	public static void newTask(Task task)
	{
		allTask.add(task);
		Log.d("task", "addtask ok........................");
	}
	// Task 数据设置,发送消息
	public void doTask(Task task)
	{
		Message mess = hand.obtainMessage();
		mess.what = task.getTaskID();// 定义刷新UI的变化
		mess.obj = task;// 传递参数
		Log.d("mess", "task message__" + ((Task)(mess.obj)).getByString("class"));
		hand.sendMessage(mess);// 发送更新UI的消息给主线程
		allTask.remove(task);// 执行完任务
	}
	@Override
	public void run()
	{
		// TODO 自动生成的方法存根
		Log.d("mainService", "isrun__" + isrun);
		while (isrun)
		{
			Task lastTask = null;
			synchronized (allTask)
			{
				if (allTask.size() > 0)
				{// 取任务
					lastTask = allTask.get(0);
					// 执行任务
					doTask(lastTask);
				}
				else
				{
					Log.d("mainService", "taskrun__" + lastTask);
					try
					{
						Thread.sleep(3000);
					}
					catch (Exception e)
					{
					}
				}
			}
		}
	}
	@Override
	public IBinder onBind(Intent arg0)
	{
		// TODO 自动生成的方法存根
		return null;
	}
	@Override
	public void onCreate()
	{
		// TODO 自动生成的方法存根
		super.onCreate();
		isrun = true;
		Thread t = new Thread(this);
		t.start();
	}
	@Override
	public void onDestroy()
	{
		// TODO 自动生成的方法存根
		super.onDestroy();
		isrun = false;
	}
}
